package netty.test22TcpSelfProto;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

public class MyMessageEncoder extends MessageToByteEncoder<MessageProtocol> {

    @Override
    protected void encode(ChannelHandlerContext channelHandlerContext, MessageProtocol msg, ByteBuf byteBuf) throws Exception {
        System.out.println("编码器MyMessageEncoder 方法被调用");
        //注意下面这两行代码的理解，写的时候先写长度，再写内容， 组成一条数据流，读的时候先读长度，再读内容
        //然后再一次读长度，然后读内容，不断循环
        byteBuf.writeInt(msg.getLen());
        byteBuf.writeBytes(msg.getContent());
    }
}
